package 位运算;

import org.junit.Test;

import java.util.Arrays;

/**
 * @author aodre , QQ : 480029069
 * @date 2023/6/1 10:18
 */
public class lc421数组中两个值异或值最大 {

    /*
     根据数据量这个题 ，无法使用 暴力
     ①：前缀树！
     ②： 贪心：
     */



    /*
     首先我自己的一个  写法！
     小贪心!

     果然没有折磨简单的搞定， 下面是错误的写法！
     一些 情况并没有考虑到位！
     */
    public int solution(int nums[]){
//        Arrays.sort(nums);
//        int len = nums.length , ans = nums[len - 1];
        int max = Arrays.stream(nums).max().getAsInt(), temp = max;
        System.out.println(max);
        for(int i = 0;i < nums.length;i++ ){
            max = Math.max(max,temp ^ nums[i]);
            System.out.printf("%d    %d   %d \n" , nums[i],max,temp ^ nums[i]);
        }
        return max;
    }

}
